<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

</body>
<script>
    {
        // 1- 如何定义
        class Box {

        }
        const Desk = class{

        }
    }
    {
        // 2- class的本质是函数
        class Box{

        }

        console.log(typeof Box);
    }
    {
        // 3- 如果设置实例属性,原型方法
        // class Box{
        //     // 定义实例属性
        //     userName="zhangsan";
        //     age=12;
        //     my= function(){
        //
        //     }
        //     constructor(a,b) {
        //         // 定义实例属性
        //         this.a = a;
        //         this.b = b;
        //         this.userName = "lisi"
        //     }
        //     // 定义原型方法
        //     run(){
        //
        //     }
        // }
        // // 定义原型方法
        // Box.prototype.fn = function(){
        //
        // }
        // const obj = new Box(1,2);
        // console.log(obj);
    }
    {
        // 4- 继承
        // class Box{
        //     constructor(a,b) {
        //         this.userName = "box";
        //         console.log("box",a,b)
        //     }
        //     fn(){
        //         console.log("fn")
        //     }
        // }
        // class Desk extends Box{
        //     // constructor(a,b) {
        //     //     super(a,b);
        //     //     console.log("desk",a,b)
        //     // }
        //
        //     // constructor(a,b) {
        //     //     super(a,b);
        //     // }
        // }
        // const obj = new Desk(1,2);
        // console.log(obj)
    }
    {
        // 5- 静态
        // class Box{
        //     static b = 2;
        // }
        // // 设置静态属性
        // Box.a = 1;
        // console.log(Box.a,Box.b);


        class Box{
            static a = 1;
            static fn(){
                console.log("box->fn")
            }
        }
        class Desk extends Box{
            static fn(){
                console.log("desk->fn");
                super.fn();
            }
        }

        console.log(Desk.a);
        Desk.fn()
    }

</script>
</html>